/*
泛型:
    定义函数/类/接口时, 不确定的类型, 使用时才指定具体类型
    指在定义函数、接口或类的时候，不预先指定具体的类型，而在使用的时候再指定具体类型的一种特性。

需求:
  创建一个函数, 实现功能: 根据指定的数量 count 和数据 value ,
  创建一个包含 count 个 value 的数组
*/
(() => {
    function getArray(count, value) {
        const arr = [];
        for (let index = 0; index < count; index++) {
            arr.push(value);
        }
        return arr;
    }
    const arr1 = getArray(3, 'atguigu');
    const arr2 = getArray(3, 12.345);
    // console.log(arr1, arr2)
    // arr1[0].length2
    // arr2[0].toString2()
})();
(() => {
    /*
    1. 定义泛型: 在函数定义时, 函数名的右侧 <T>    T / K / V
    2. 使用泛型: 在形参和函数体中使用
    3. 指定具体类型: 在调用函数时, 函数名的右侧 <具体类型>
    */
    function getArray(count, value) {
        const arr = [];
        for (let index = 0; index < count; index++) {
            arr.push(value);
        }
        return arr;
    }
    const arr = getArray(3, 'abcd');
    arr[0].length;
    const arr2 = getArray(3, 12.345);
    arr2[0].toFixed(1); // 12.3
})();
